Method and apparatus for exploring a multi-element design through user directed selective rendering

ABSTRACT

An element selection is made in reference to a first graphical display showing a first subset of elements of a design having a number of elements coupled to one another. The selection is learned. In response, a second graphical display is provided. The second graphical display shows a second subset of the elements of the design, including at least a number of elements that are not part of the first subset but having an informational nexus to the selected element. As a result, a designer may selectively explore a complex design at the designer&#39;s direction.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to the field of computer aideddesign tools. More specifically, the present invention relates tomethods and apparatuses associated with assisting a designer inexploring a multi-element design, e.g., an integrated circuit (IC)having a large number of interconnected circuit elements.

[0003] 2. Background Information

[0004] As price/performance of computing technology continues toimprove, increasingly, computers are employed to assist a designer inperforming various design tasks. As a result, designers are able toengage more complex designs, which in turn lead to greater demand forcomputerized assistance.

[0005] For example, in the design and fabrication of ICs, improvementsin the price/performance of computing technology had made possiblenumerous automation in IC design as well as IC fabrication processes. Asa result, increasingly more complex ICs, having multiple millions oftransistors, are being designed and fabricated. In turn, the ICdesigners have become more reliant on electronic design automation (EDA)tools to assist them in managing the complexity and diagnosing designproblems, to sustain their productivity and effectiveness. Morespecifically, in the area of IC design, virtually all complex IC designsare being synthesized employing synthesis tools. Typically, a circuitdesigner would specify an IC design on a textual basis, employing one ofa number of high level hardware languages, such as Very Large ScaleIntegration (VSLI) Hardware Design Language (VHDL). The text baseddesign specification is in turn provided to a synthesis tool to generatethe circuit elements and their interconnections. While most synthesistools will generate complementary schematic diagrams for the textuallyspecified design, however, by virtue of the complexity of the design andthe fact that the designer has specified the design in a textualapproach, the schematic diagrams are usually very large, very difficultto manipulate, and very hard for the designer to comprehend or use it toaid in diagnosing a design problem. Thus, more computerized assistanceare required to enable the designer to utilize these schematicseffectively. Various design and diagnostic tools have emerged to providesuch assistance. Some are able to generate functional block diagrams tosupplement the huge unwieldy schematics, while other diagnostic toolswill report critical paths or design problems, such as timingviolations, in graphical form. Nevertheless, circuit designers havefound the current generation of EDA tools to be inadequate in theirflexibility in assisting them in dealing with the ever more complex ICdesigns.

[0006] Similar problems exist in other fields. For examples, inunderstanding or managing the wiring of complex machinery, such as thespace shuttle, or a commercial airliner, or in theunderstanding/management of cabling for a complex communication networkhaving a large number of “nodes”.

[0007] Thus, a more effective and user friendly approach to assistingdesigners in exploring or analyzing complex designs is desired.

SUMMARY OF THE INVENTION

[0008] In accordance with the present invention, an element selection ismade in reference to a first graphical display showing a first subset ofelements of a design having a number of elements coupled to one another.The selection is learned. In response, a second graphical display isprovided. The second graphical display shows a second subset of theelements of the design, including at least a number of elements that arenot part of the first subset but having an informational nexus to theselected element. As a result, a designer may selectively explore acomplex design at the designer's direction.

[0009] In one embodiment, the elements having an information nexus tothe selected element are elements that are coupled to the selectedelement by at most n−1 degree(s) of indirection, n being an integer andmay be dynamically set. Furthermore, they are included into the firstsubset to form the second subset.

[0010] In one embodiment, the design is a circuit design, and theelements are circuit elements of a circuit design.

BRIEF DESCRIPTION OF DRAWINGS

[0011] The present invention will be described by way of exemplaryembodiments, but not limitations, illustrated in the accompanyingdrawings in which like references denote similar elements, and in which:

[0012]FIG. 1 provides an overview of the present invention in accordancewith one embodiment;

[0013]FIGS. 2a-2 b illustrates an exemplary embodiment of the userinterface of FIG. 1;

[0014]FIG. 3 illustrates one embodiment of the operational steps of the“click and sprout” routine of FIG. 1;

[0015]FIG. 4 illustrates the method steps of the present invention inaccordance with one embodiment;

[0016]FIGS. 5a-5 c illustrate an exemplary application of the presentinvention; and

[0017]FIG. 6 illustrates one embodiment of an exemplary computer systemsuitable for use to practice the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0018] In the following description, various aspects of the presentinvention will be described. However, it will be apparent to thoseskilled in the art that the present invention may be practiced with onlysome or all aspects of the present invention. For purposes ofexplanation, specific numbers, materials and configurations are setforth in order to provide a thorough understanding of the presentinvention. However, it will also be apparent to one skilled in the artthat the present invention may be practiced without the specificdetails. In other instances, well known features are omitted orsimplified in order not to obscure the present invention.

[0019] Parts of the description will be presented in terms of operationsperformed by a computer system, using terms such as tables, files, dataand the like, consistent with the manner commonly employed by thoseskilled in the art to convey the substance of their work to othersskilled in the art. As well understood by those skilled in the art,these quantities take the form of electrical, magnetic, or opticalsignals capable of being stored, transferred, combined, and otherwisemanipulated through mechanical and electrical components of a digitalsystem; and the term digital system include general purpose as well asspecial purpose data processing machines, systems, and the like, thatare standalone, adjunct or embedded.

[0020] Various operations will be described as multiple discrete stepsperformed in turn in a manner that is most helpful in understanding thepresent invention, however, the order of description should not beconstrued as to imply that these operations are necessarily performed inthe order they are presented, or order dependent.

[0021] Referring now to FIG. 1, wherein an overview of the presentinvention in accordance with one embodiment is shown. As illustrated, inaccordance with the present invention, viewer 100, leveraging on adesign automation tool/database 150, advantageously facilitatesexploration of a multi-element design by a designer under the designer'sdirection. Viewer 100 successively renders graphical displays of thedesign for the designer, showing selected ones of the elements of thedesign obtained from tool/database 150, responsive to the designer'sinteractions with the rendered graphical displays. As will be describedin more details below, in response to learning of an element selectionmade in reference to a rendered graphical display showing a first subsetof the elements of a design, viewer 100 causes a replacement graphicaldisplay to be provided. The replacement graphical display shows a secondsubset of the elements of the design, including at least a number ofelements that are not part of the first subset, but having aninformational nexus to the selected element.

[0022] As discussed earlier in the background section, the multi-elementdesign may be an IC design having a large number of circuit elementsinterconnected to one another, or a wiring design for a complexmachinery having a large number of components coupled to one another, ora cabling design for a large communication network having a large numberof nodes coupled to one another. Thus, the term “design” as used hereinis intended to represent a broad range of multi-element designs havinglike kind of characteristics, and the term “element” as used herein isintended to include meanings other like terms such as “component” and soforth.

[0023] Continuing to refer to FIG. 1, for the illustrated embodiment,viewer 100 includes user interface 102, user action specific processingroutines 110 and non-user action specific processing routines 120. Useraction specific processing routines 110 include in particular “click andsprout” processing routine 112, whereas non-user action specificprocessing routines 120 include in particular “place and route” routine122 and graphical display routine 124. These elements are “operationallycoupled” to each other as shown.

[0024] User interface 102 performs its conventional function ofinterfacing with the user, e.g. the designer, displaying outputs for thedesigner and accepting inputs from the designer. An exemplary one ofuser interface 102, showing an exemplary graphical display 104 ofselected circuit elements of a circuit design, including in particular,preference setting option 106 and “click and sprout” control button 108,is shown in FIG. 2a. Preference setting option 106, as illustrated inFIG. 2b, includes in particular facilities for setting an operationalvalue for the “degree of indirection” to practice the illustratedembodiment of the present invention, also to be described more fullybelow. In other embodiments, user interface 102 may also include othercommand menus as well as other control buttons, such as above described“scroll up/down”, “zoom”, and so forth.

[0025] Referring back to FIG. 1, “click and sprout” processing routine112 is used to generate the element content of the replacement graphicaldisplay, responsive to the selection of the “click and sprout” button bythe designer. Recall from earlier description, the element contentincludes at least selected ones of the elements that are not part of theelement content of the current graphical display, but havinginformational nexus to the selected element. For the illustratedembodiment, these elements are elements that are not part of the elementcontent of the current graphical display, but interconnected to theselected element by at most n−1 degree(s) of indirection, where n is aninteger and may be dynamically set using preference setting option 106of user interface 102. Moreover, for the illustrated embodiment, theseelements are added to the element content of the current graphicaldisplay to form the element content of the replacement graphicaldisplay. In other words, the illustrated embodiment enables the designerto incrementally explore the design under his/her direction. Note thatwith the inclusion of the added elements, the replacement graphicaldisplay may have to be scrolled up/down or left/right in order to seethe entire content. In other embodiments, the present invention may bepracticed with other informational nexus. The elements having therequisite informational nexus may replace or be merged with the elementcontent of the current graphical display, resulting in the exclusion ofsome of the elements of the element content of the current graphicaldisplay, as opposed to the straight addition to the element content ofthe current graphical display of the illustrated embodiment describedearlier.

[0026] Additionally, for the illustrated embodiment, “click and sprout”processing routine 112 is “operationally coupled” to user interface 102by way of the input notification services of an underlying operatingsystem (not shown). Furthermore, “click and sprout” processing routine112 obtains the selected ones of the elements that are not part of theelement content of the current graphical display, but having therequisite informational nexus to the selected element from tool/database150.

[0027] Place and route routine 126 is used to place and route theelements of the newly added elements of the element content of the nextgraphical display. Graphical display 124 is used to render the graphicaldisplays including the previously as well as the newly placed and routedelements. As described earlier, tool/database 150 is used to supply“click and sprout” routine 112 with the elements having the requisiteinformational nexus to the selected element. Both place and routeroutine 126 and graphical display 124 are intended to represent a broadcategory of these routines known in the art. In the case of graphicaldisplay 124, for the illustrated embodiment, it is “operationallycoupled” to user interface 102 by way of the rendering services of theunderlying operating system also. Similarly, tool/database 150 is alsointended to represent a broad category of design tools/databases knownin the art. An example of such tools/databases is the Calibre™ productavailable from Mentor Graphics Corp., of Wilsonville, Oreg., for deepsubmicron IC design. Accordingly, neither place and route routine 122,graphical display routine 124, nor tool/database 150 will be furtherdescribed.

[0028] Referring now to FIG. 3, wherein a block diagram illustrating theoperational steps of “click and sprout” routine 112 of FIG. 1 inaccordance with one embodiment is shown. As illustrated, at step 302,“click and sprout” routine 112, in response to the receipt of an elementselection notification (in reference to a first graphical display of adesign), calls tool/database 150 to obtain the elements having therequisite informational nexus to the selected element. As describedearlier, in one embodiment, “click and sprout” routine 112 queriestool/database 150 for the elements interconnected to the selectedelement with at most n−1 degree(s) of indirection. Upon receipt of theelements with the requisite informational nexus, at step 304, “click andsprout” routine 112 merges the received elements with the elementcontent of the current graphical display to form the element content ofthe replacement graphical display.

[0029] Having formed the element content of the replacement graphicaldisplay, at step 306, “click and sprout” routine 112 calls “place androute” routine 122 to place and route the newly added elements. Uponplacement and routing of the newly added elements, at step 308, “clickand sprout” routine 112 calls graphical display routine 124 to renderthe replacement graphical display.

[0030] Referring now to FIG. 4, wherein a block diagram illustrating themethod steps of the present invention in accordance with one embodimentis shown. As illustrated, at step 402, a graphical display showingselected elements of a design is first rendered for a designer. Then, atstep 404, an element selection in reference to the rendered graphicaldisplay is received from the designer. In response, at step 406, areplacement graphical display is rendered for the designer. Thereplacement graphical display, as described earlier, shows at leastelements that are not part of the element content of the earlierrendered graphical display, but having certain requisite informationalnexus to the selected element. Steps 404-406 are repeated as many timesas they are necessary to facilitate the designer in exploring thedesign. The process eventually terminates if a termination notificationis received, step 408.

[0031]FIGS. 5a-5 c illustrate an exemplary application of the presentinvention to IC design. Shown in FIG. 5a is a first graphical displayshowing circuit elements A-E of a circuit design. The first graphicaldisplay may be rendered for the circuit designer for a variety ofreasons, e.g. the path including elements A-E incurs certain timeviolation. In response to the selection of circuit element C by thecircuit designer, a second graphical display further including element Fand G is rendered for the circuit designer, FIG. 5b. For the exemplaryillustration, elements F and G are directly interconnected to element C(i.e. the informational nexus being circuit elements interconnect to theselected circuit element by at most zero degree of indirection). Next,in response to the selection of circuit element F by circuit designer, athird graphical display further including element H, I and J is renderedfor the circuit designer, FIG. 5c. Elements H, I and J are also directlyinterconnected to element F. Note that for the exemplary illustration,upon the addition of elements H-J, by virtue of their placement androuting, “scrolling down” is required to see element G. Those, skilledin the art will appreciate that in real life, the schematics of ICdesigns are much more complicated than the illustrated exemplaryapplication. Nevertheless, the exemplary application demonstrates theprinciple of facilitating incremental exploration by the circuitdesigner under his/her direction. More importantly, those skilled in theart will appreciate that the approach greatly simplies the complexityconfronting the circuit designer, allowing the circuit designer togradually increase the complexity at his/her own pace, and of his/herown choosing.

[0032]FIG. 6 illustrates one embodiment of an exemplary computer systemsuitable for use to practice the present invention. As shown, exemplarycomputer system 600 includes processor 602 and system memory 604 coupledto each other via system bus 606. Coupled also system bus 606 arenon-volatile storage 608, display device 610, input/output devices 612,and communication interface 614. Each of these elements perform itsconventional functions known in the art. In particular, system memory604 and non-volatile storage 608 are employed to store a working copyand a permanent copy of the programming instructions implementing theteachings of the present invention. The permanent copy of theprogramming instructions may be loaded into non-volatile storage 608 inthe factory, or in the field, through distribution medium 622 or throughcommunication interface 614. As described earlier, any one of a numberof recordable medium such as tapes and so forth may be employed. Theconstitution of these elements 602-622 are also well known, andaccordingly will not be further described.

[0033] Thus, a method and apparatus for facilitating deign explorationthrough user directed selective rendering has been described. While thepresent invention has been described in terms of the above illustratedembodiments, those skilled in the art will recognize that the inventionis not limited to the embodiments described. The present invention canbe practiced with modification and alteration within the spirit andscope of the appended claims. The description is thus to be regarded asillustrative instead of restrictive on the present invention.

What is claimed is:
 1. A computer implemented method comprising: receiving a notification conveying a selection of an element that is a part of a first graphical display of a design having a plurality of elements coupled to one another, the first graphical display showing a first subset of the elements of the design; and in response, determining a second subset of the elements of the design to form a second graphical display, with the second subset to include at least a number of elements that are not part of the first subset but having an informational nexus to the selected element.
 2. The computer implemented method of claim 1, wherein said determining is performed in accordance with a policy that provides for the second subset to include at least the selected element and elements that are coupled to the selected element by at most n−1 degree(s) of indirection, n being an integer.
 3. The computer implemented method of claim 2, wherein the method further comprises dynamically accepting a setting for n.
 4. The computer implemented method of claim 2, wherein said determining includes interacting with a tool/database to identify elements that are coupled to the selected element by at least n−1 degree(s) of indirection.
 5. The computer implemented method of claim 1, wherein the determination is made in accordance with an incremental inclusion policy that provides for incrementally including into the first subset, a number of elements that are not part of the first subset but coupled to the selected element by at most n−1 degree(s) of indirection to form the second subset, n being an integer.
 6. The computer implemented method of claim 1, wherein the method further includes generating placements as well as couplings for at least the elements that are not part of the first subset.
 7. The computer implemented method of claim 1, wherein the method further comprises rendering the first graphical display, and rendering the second graphical display for a user.
 8. The computer implemented method of claim 7, wherein the method further comprises upon rendering the first graphical display, facilitating the user to trigger said selection notification by interacting with the first graphical display.
 9. The computer implemented method of claim 1, wherein the design is a circuit design, and the elements are circuit elements of the circuit design interconnected to one another.
 10. The computer implemented method of claim 1, wherein the design is a wiring/cabling plan, and the elements are components of the wiring/cabling plan to be wired/cabled together.
 11. A computer system comprising: a processor; a storage medium coupled to the processor and having stored therein a plurality of programming instructions to be executed by the processor to cause a notification of a selection of an element to be received, the selected element being a part of a first graphical display showing a first subset of elements of a design having a plurality of elements coupled to one another, and to cause a second subset of said elements of said design for use to render a second graphical display to be determined in response, the second subset including at least a number of elements that are not part of the first subset but having an informational nexus to the selected element.
 12. The computer system of claim 11, wherein the determination is made in accordance with a policy that provides for the second subset of elements to include at least the selected element and elements that are coupled to the selected element by at most n−1 degree(s) of indirection, n being an integer.
 13. The computer system of claim 12, wherein said execution of the programming instructions further cause a setting for n to be dynamically accepted.
 14. The computer system of claim 12, wherein said determining includes interacting with a tool/database to identify said elements that are coupled to the selected element by at most n−1 degree(s) of indirection.
 15. The computer system of claim 11, wherein the determination is made in accordance with an incremental inclusion policy that provides for incrementally including into the first subset, a number of elements that are not part of the first subset but coupled to the selected element by at most n−1 degree(s) of indirection to form the second subset, n being an integer.
 16. The computer system of claim 11, wherein said execution of the programming instructions further causes placements as well as couplings to be generated for at least the elements that are not part of the first subset.
 17. The computer system of claim 11, wherein the computer system further comprises a display coupled to the processor to render the first and the second graphical displays for a user.
 18. The computer system of claim 17, wherein the computer system further comprises an input device to facilitate a user, upon rendering of the first graphical display, to trigger the selection notification by interacting with the first graphical display.
 19. The computer system of claim 11, wherein the design is a circuit design, and the elements are circuit elements of the circuit design interconnected to one another.
 20. The computer system of claim 11, wherein the design is a wiring/cabling plan, and the elements are components of the wiring/cabling plan to be wired/cabled together.
 21. An article of manufacture comprising: a recordable medium having recorded thereon a plurality of programming instructions for use to program an apparatus to enable the apparatus to be able to cause a notification of a selection of an element to be received, the selected element being a part of a first graphical display showing a first subset of elements of a design having a plurality of elements coupled to one another, and to enable the apparatus to be able to cause a second subset of the elements of the design for use to render a second graphical display to be determined in response, the second subset includes at least a number of elements that are not part of the first subset but having an informational nexus to the selected element.
 22. The article of manufacture of claim 21, wherein the determination is made in accordance with a policy that provides for the second subset of elements to include at least the selected element and elements that are coupled to the selected element by at most n−1 degree(s) of indirection, n being an integer.
 23. The article of manufacture of claim 22, wherein the programming instructions further enable the apparatus to be able to dynamically accept a setting for n.
 24. The article of manufacture of claim 22, wherein said determining includes interacting with a tool/database to identify said elements that are coupled to the selected element by at most n−1 degree(s) of indirection.
 25. The article of manufacture of claim 21, wherein the determination is performed in accordance with an incremental inclusion policy that provides for incrementally including into said first subset, a number of elements that are coupled to the selected element by at most n−1 degree(s) of indirection to form the second subset, n being an integer.
 26. The article of manufacture of claim 22, wherein said programming instructions further enable the apparatus to cause placements as well as couplings to be generated for at least said elements that are not part of the first subset.
 27. The article of manufacture of claim 21, wherein the programming instructions further enable the apparatus to be able to render the first and the second graphical displays for a user.
 28. The article of manufacture of claim 27, wherein the programming instructions further enable the apparatus to be able to facilitate a user, upon rendering of the first graphical display, to trigger the notification selection by interacting with the first graphical display.
 29. An apparatus comprising: means for learning of an element selection in reference to a first graphical display showing a first subset of elements of a design having a plurality of elements coupled to one another; and means for responding to the element selection with a second graphical display showing a second subset of said elements of said design including at least a number of elements that are not part of said first subset but having an informational nexus to the selected element.
 30. A method comprising the steps of: first step for learning an element selection in reference to a first graphical display showing a first subset of elements of a design having a plurality of elements coupled to one another; and second step for responding to the element selection with a second graphical display showing a second subset of said elements of said design including at least a number of elements that are not part of said first subset but having an informational nexus to the selected element. 